CSS Grid レイアウト
行列型のレイアウトができる。
要素の出現順とレイアウト位置を完全に独立させることができる。
grid-template プロパティを使うと「見たままのレイアウト」を指定できる(これが大きい)
「顧客が本当に必要だったもの」がやっと出た。
疑似的に Flexbox のような挙動にすることもできる。(自動折り返し)
CSS Flexbox は折り返した後の要素の幅が、折り返した各行で決まってしまう。
CSS Grid の場合は、要素の幅を固定的にできる。(ほとんどの人はこちらの動作を期待するはず)
grid-template は grid-template-areas と grid-template-rows と grid-template-columns を合わせたもの。
class と CSS で書くより、style に grid-area を直接書いた方が直感的という指摘。
IE11 で使う場合には Autoprefixer を使う。
欠点
指定方法が煩雑すぎるため、細かな指定に向かない。
ブロック的なレイアウトに使うくらい。
注意点
div レイアウトを使っている場合、div が多段に適用されていることがよくあるが、これは grid では取り扱えない。grid で取り扱われる要素は、その grid のコンテナ要素の直下になければならない。
code:bad.html
<div class="panel"> <!-- これを grid コンテナとすると -->
<div class="item"> <!-- これが grid アイテム -->
<div class="title">title</div> <!-- これは独立して取り扱えない -->
<div class="value">value</div>
</div>
<div class="item"> <!-- これが grid アイテム -->
<div class="title">title</div>
<div class="value">value</div>
</div>
</div>
参考